package com.tl.khadmin.timedtask;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.tl.khadmin.service.GenerateOrderBillService;
import com.tl.khadmin.service.impl.ProductServiceImpl;

@Component
@EnableScheduling
public class OrderBillTask {

	private static Logger log=Logger.getLogger(OrderBillTask.class);
	@Autowired
	private GenerateOrderBillService generateOrderBillService;
	
    
    /**
     * 秒(0~59)  分钟(0~59)  小时(0~23)  天(月)(0~31)  月(0~11)  天(星期)(1~7 1=SUN 或 SUN，MON，TUE，WED，THU，FRI，SAT)  年份
     * 0 0 1 11 * ?   每月11日凌晨1点触发
     * 0 0 1 ? * MON  每星期1凌晨1点触发
     * 0 0 1 1 * ?   每月1日凌晨1点触发
     * 0 0 1 * * ? 	    每天凌晨1点触发 
     */
	
	/**
	 * 生成周结供应商的结算账单
	 * 每星期1凌晨1点触发，生成上一周供应商账单
	 */
	// 每隔1分钟执行一次:0 */5 * * * ?
//	@Scheduled(cron = "0 */1 * * * ?") 
    @Scheduled(cron = "0 0 1 ? * MON")
    public void weekOrderBill(){
    	log.info("触发生成一周账单定时器..."); 
    	generateOrderBillService.weekOrderBill();
    }
	
	/**
	 * 生成十日结供应商的结算账单
	 * 每月11日，21日凌晨1点触发，生成上一周供应商账单
	 */
	// 每隔1分钟执行一次:0 */5 * * * ?
	@Scheduled(cron = "0 0 1 11,21 * ?")  
    public void tenDaysOrderBill(){
    	log.info("触发生成十日账单定时器..."); 
    	generateOrderBillService.tenDaysOrderBill();
    }
	
	/**
	 * 生成月结供应商的结算账单
	 * 每月1日凌晨1点触发，生成上一月供应商账单
	 */
	// 每隔1分钟执行一次:0 */5 * * * ? 
    @Scheduled(cron = "0 0 1 1 * ?")
    public void monthOrderBill(){
    	log.info("触发生成月结账单定时器..."); 
    	generateOrderBillService.monthOrderBill();
    }
	   
    
}
